Deklaratat e kushtezuara

Deklaratat e kushtezuara perdoren per te performuar veprime te ndryshme ne varesi te kushteve te ndryshme. Pra, merren vendime se cili bllok do te ekzekutohet ne varesi te nje kushti te caktuar. Ose, vleresohet nje kusht i caktuar per te vendosur se blloku ne vijim do te ekzekutohet apo jo.

Figura 1: Marrja e vendimit ne deklaratat e kushtezuara

Marrje Vendimi

Ne PHP ekzistojne deklaratat e kushtezuara si me poshte:

  • deklarata if - E perdorim per te ekzekutuar nje pjese kodi vetem nqs. nje kusht i caktuar eshte i vertete (true)
  • deklarata if...else - E perdorim per te ekzekutuar nje pjese kodi nqs. kushti eshte i vertete (true), ose nje pjese tjeter kodi nqs. kushti eshte i gabuar (false)
  • deklarata if...elseif....else - Ne radhen e kushteve ekzekutohet blloku i pare qe e ka kushtin te vertete, perndryshe ekzekutohet blloku i fundit.
  • deklarata switch - Ne radhen e kushteve ekzekutohet blloku i pare qe e ka kushtin te vertete, perndryshe ekzekutohet blloku default ne rast se e kemi vendosur.

Deklarata if

E perdorim per te ekzekutuar nje pjese kodi vetem nqs. nje kusht i caktuar eshte i vertete (true).

Sintaksa:

if (kushti) Kodi qe do te ekzekutohet nqs. kushti eshte i true;

Shembull:

<?php

$mosha = 25;

if($mosha > 20) print("Moshe e madhe!");

Ne dalje do te shohim tekstin: Moshe e madhe!, sepse kushti eshte i vertete dhe blloku i kodit ne vijim ekzekutohet.

Ne rast te kundert:

<?php

$mosha = 15;

if($mosha > 20) print("Moshe e madhe!");

Ne kete rast nuk ekzekutohet blloku i kodit sepse kushti eshte i gabuar. Ndaj ne dalje nuk printohet asgje.

Deklarata if...else

E perdorim per te ekzekutuar nje pjese kodi nqs. kushti eshte i vertete (true), ose nje pjese tjeter kodi nqs. kushti eshte i gabuar (false).

Sintaksa:

if (kushti) 
  kodi qe ekzekutohet nqs. kushti eshte true; 
else
  kodi qe ekzekutohet nqs. kushti eshte false;

Shembull:

<?php

$dita = "E Premte";

if($dita == "E Premte")
  print("Kalofsh nje fundjave te bukur!");
else
  print("Kalofsh nje dite te bukur!");

Ne kete rast kushti plotesohet sepse variabli $dita ka vleren E Premte, dhe do te printohet Kalofsh nje fundjave te bukur!.

Ne te kundert:

<?php

$dita = "E Marte";

if($dita == "E Premte")
  print("Kalofsh nje fundjave te bukur!");
else
  print("Kalofsh nje dite te bukur!");

Do te printohet Kalofsh nje dite te bukur! pasi $dita ka vleren E Marte.

Ne rast se ne nje bllok te caktuar duam te ekzekutojme me shume se nje rresht (rasti i mesiperm), atehere pjesa e kodit duhet te futet midis kllapash gjarperuese { dhe }.

Shembull:

<?php

if($dita == "E Premte") {
  print("---");
  print("Kalofsh nje fundjave te bukur!");
} else {
  print("---");
  print("Kalofsh nje dite te bukur!");
}

Deklarata if...elseif...else

Ne radhen e kushteve ekzekutohet blloku i pare qe e ka kushtin te vertete, perndryshe ekzekutohet blloku i fundit.

Sintaksa:

if (kushti)
  kodi qe ekzekutohet nqs. kushti eshte true; 
elseif (kushti) 
  kodi qe ekzekutohet nqs. kushti eshte true, dhe nuk patur kusht tjeter me lart true; 
else
  kodi qe ekzekutohet nqs. te gjithe kushtet jane false;

Nqs. plotesohet kushti i i pare ekzeutohet pjesa qe vjen pas atij kushti, perndryshe kalohet tek kushti pasardhes deri ne momnentin qe gjendet nje kusht qe plotesohet. elseif mund te kemi disa dhe jo vetem nje. Ne rast se nuk plotesohet asnje kusht atehere ekzekutohet pjesa e kodit ne bllokun else. Nuk jemi te detyruar te vendosim nje bllok else, pra mund te vendosim edhe vetem blloqe if dhe elseif.

Shembull:

<?php

$dita = "E Hene";

if($dita == "E Hene") {
  print("Jemi ne fillimin e javes!");
} elseif($dita == "E Merkure") {
  print("Jemi ne mesin e javes!");
} elseif($dita == "E Djel") {
  print("Jemi ne fundjave!");
} else {
  print("Jemi ne diten $dita!");
}

Ne kete rast, kur variabli $dita ka vleren E Hene, do te plotesohet menjehere kushti i pare if, dhe ne ekran do te printohet: Jemi ne fillimin e javes!

Ne rast se $dita do te kishte vleren E Merkure, kushti i pare if nuk do te ishte i vertete (nuk do te plotesohej), ndaj kalohet kontrolli tek kushti elseif i pare. Ne kete rast kushti elseif plotesohet sepse dita eshte e barabarte me E Merkure dhe ne ekran do te printohej: Jemi ne mesin e javes!. Ne momentin qe nje kusht i caktuar plotesohet, nuk vazhdohet kontrolli tek kushtet e tjera. Automatikisht ekzekutohet blloku i kushtit qe u plotesua, ndersa pjesa tjeter injorohet.

Ne rast se $dita do te kishte vleren E Djel, kushti i pare if nuk do te ishte i vertete (nuk do te plotesohej), ndaj kalohet kontrolli tek kushti elseif i pare. Edhe kushti i pare elseif nuk do te plotesohet, ndaj kalohet kontrolli tek kushti i dyte elseif. Ne kete rast kushti plotesohet sepse dita eshte e barabarte me E Djel dhe ne ekran do te printohej: Jemi ne fundjave!

Ne rast se $dita do te kishte vleren E Enjte, asnje nga kushtet if dhe elseif nuk plotesohet, ndaj kontrolli i kalon bllokut else i cili trajton te gjitha rastet qe nuk plotesojne kushtet e mesiperme. Pra, ne ekran do te printohej: Jemi ne diten E Enjte!. DUhet te kemi parasysh qe ne kete rast fjalia qe printohet eshte dinamike. Ne varesi te dites qe eshte printohet edhe vlera e saj, pra, variabli $dita gjendet brenda stringes me thonjeza cifte (") dhe printon vleren e saj. Ne rast se stringa do te ishte me thonjeza teke (') atehere ajo nuk do te printone vleren e saj, por do te printohej e tera si stringe, ne kete forme: Jemi ne diten $dita!

Deklarata switch

switch perdoret kur duam te ekzekutojme nje bllok i cili i plotesohet kushti, pasi kemi bere disa krahasime. Ne kete rast krahasimi behet ne nje forme me ndryshe, jepet nje variabel i caktuar brenda bllokut switch, dhe percaktohen disa raste me kushte te ndryshme. Kontrolli kalon nga rasti i pare deri tek i fundit dhe per cdo kusht qe plotesohet ekzekutohet blloku i tyre i kodit. Deklarata switch permban edhe nje bllok opsional default qe ne rast se e vendosim ekzekutohet vetem kur asnje nga kushtet nuk eshte plotesuar.

Sintaksa:

switch($variabel) {
  case vlera1:
    kodi qe ekzekutohet
  case vlera2:
    kodi qe ekzekutohet
  default:
    kodi qe ekzekutohet kur nuk plotesohen kushtet
}

Ne rastin e mesiperm, ne rast se $variabel ka vleren e njejte me vlera1 ekzekutohet blloku i pare, ne rast se ka vleren vlera2 ekzekutohet blloku i dyte, se fundmi ekzekutohet blloku default. Blloku default edhe mund te mos vendoset fare, pasi eshte me zgjedhje te lire (opsional).

Edhe pasi plotesohet kushti, ne deklaratat switch vijon kontrolli ne kushtet e tjera deri ne fund. Por ne kete rast eshte i panevojshem vazhdimi i kontrollit ne kushtet e tjera, pasi ne e gjetem kushtin e vertete dhe skemi nevoje te kontrollojme kushtet e tjera (qe do te na rezultonin te paverteta). Po ashtu nuk kemi nevoje te kalojme tek blloku default, pasi bllokun default duam ta perdorim vetem ne rastin kur nuk plotesohet asnje nga kushtet e mesiperme.

Per te shmangur kete gje perdorim break. Pas cdo pjese te kodit te cdo blloku vendosim nje deklarim break; i cili ben ndalimin e vazhdimit te deklarates switch. Pra, ai ndalon se kontrolluari kushtet e tjera. Eshte shume e rendesishme te perdoret break; pasi ne rast se nuk e vendosim, ne momentin qe plotesohet kushti i pare, do te ekzekutohet blloku i kushtit te pare dhe i te gjithe kushteve poshte tij edhe pse kushtet e tjera mund te mos jene te verteta.

Shembull:

<?php

$dita = "E Hene";

switch ($dita) {
  case "E Hene":
    print ("Jemi ne fillimin e javes!");
  case "E Merkure":
    print ("Jemi ne mesin e javes!");
  case "E Djel":
    print ("Jemi ne fundjave!");
}

Ne kete rast $dita ka vleren E Hene, pra plotesohet kushti i pare. Ne nuk kemi vendosur deklarim break; ndaj ne ekran do te printohej: Jemi ne fillimin e javes!Jemi ne mesin e javes!Jemi ne fundjave!.

Ne rast se $dita do te kishte vleren E Merkure, do te plotesohej kushti i dyte, dhe do te ekzekutohej blloku i kodit te kushtit te dyte sebashku me te gjitha blloqet e kodit qe vijne poshte tij, dhe ne ekran do te shfaqej: Jemi ne mesin e javes!Jemi ne fundjave!. Pra, kuptojme qe deklarimi break; eshte shume i rendesishem. Le ta shohim sesi e perdorim.

Shembull:

<?php

$dita = "E Hene";

switch ($dita) {
  case "E Hene":
    print ("Jemi ne fillimin e javes!");
    break;
  case "E Merkure":
    print ("Jemi ne mesin e javes!");
    break;
  case "E Djel":
    print ("Jemi ne fundjave!");
    break;
  default:
    print("Jemi ne diten $dita!");
}

Ne kete rast $dita ka vleren E Hene, ndaj kur fillon kontrolli i deklarates switch, shohim qe menjehere plotesohet rasti i pare case "E Hene", ndaj ne ekran do te printohet Jemi ne fillimin e javes! dhe nuk do te vazhdohet me kushtet e tjera pasi kemi perdorur break. Ne momentin qe plotesohet kushti, break ben daljen nga deklarata switch. Ne rast se asnje nga kushtet nuk do te plotesohet mbetet per tu ekzekutuar blloku i pjeses default.

Ne disa raste mund te na duhet te bejme krahasime jo vetem nqs. nje variabel e ka vleren te barabarte me nje vlere te caktuar, por duam te bejme veprime si >, <=, != etj. Per te realizuar kete gje, brenda deklarates switch nuk kalojme asnje variablen, por vendosim termin true. Me pas ne pjeset case bejme veprime krahasuese.

Shembull:

<?php

$mosha = 30;

switch (true) {
  case ($mosha > 50):
    print("Person ne moshe te madhe!");
    break;
  case ($mosha < 20):
    print("Person ne moshe te vogel!");
    break;
  default:
    print("Person ne moshe te mesme!");
}

Shohim qe krahasimi behet ne blloqet case dhe kur nje kusht plotesohet ekzekutohet blloku per ate kusht dhe nderpritet aty sepse kemi perdorur deklaraten break. Ne rastin e mesiperm $mosha ka vleren 30 dhe asnjeri nga kushtet nuk plotesohet, ndaj kalohet menjehere tek blloku default kur printon ne ekran: "Person ne moshe te mesme!

results matching ""

    No results matching ""